Soru & Cevap

Android studio fragment geri tuşu ...

16.11.2017 - 07:47

Merhabalar

Kusura bakmayın android studio da yeniyim. Öğrenmeye çalışıyorum. Bir konuda yardımınız lazım.

Android Studio nun hazır slider menusunu kullanarak projeyi açtım. Anasayfa layoutuna bir fragment ekledim.

MainActivity java kodlarımı aşağıda yazdım

 

Sorunum şu ard arda birden fazla fragmete tıklayıp sayfaları açıyorum. Ben geri tuşuna basınca geriye doğru açılmış fragmentleri göstermesini isterken uygulama bir anda kapanıyor . Bunu nasıl  halledebilirim acaba

Şimdiden çok teşekkürler...

 

 

package boran.com.metehan;

import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

public class Anasayfa extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_anasayfa);

        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction ft = fragmentManager.beginTransaction();
        İlkSayfa ilkSayfa = new İlkSayfa();
        ft.replace(R.id.content_frame, ilkSayfa);
        ft.commit();




        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

//        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
 //       fab.setOnClickListener(new View.OnClickListener() {
 //           @Override
   //         public void onClick(View view) {
     //           Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
       //                 .setAction("Action", null).show();
         //   }
     //   });

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
    }

    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.anasayfa, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
    //    if (id == R.id.action_settings) {
      //      return true;
      //  }

        return super.onOptionsItemSelected(item);
    }

    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.nav_camera) {
            // Handle the camera action
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction ft = fragmentManager.beginTransaction();
            FragmentAndroid fragmentAndroid = new FragmentAndroid();
            ft.replace(R.id.content_frame, fragmentAndroid);
            ft.commit();



        } else if (id == R.id.nav_gallery) {

        } else if (id == R.id.nav_slideshow) {

        } else if (id == R.id.nav_manage) {

        } else if (id == R.id.nav_share) {

        } else if (id == R.id.nav_send) {

        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
}

 

837 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user Hamza3444
Hamza3444
17.11.2017 - 10:14

Arkadaslar sorunu çözdüm
Aynı sorunu benim gibi yaşayan olursa 

 

 

FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction ft = fragmentManager.beginTransaction();
            FragmentAndroid fragmentAndroid = new FragmentAndroid();
            ft.replace(R.id.content_frame, fragmentAndroid);
            ft.commit();

 


yerine

 

 

 


    FragmentManager fragmentManager = getFragmentManager();
                FragmentTransaction ft = fragmentManager.beginTransaction();
                FragmentAndroid fragmentAndroid = new FragmentAndroid();
                ft.replace(R.id.content_frame, fragmentAndroid);
                ft.addToBackStack(null);
                ft.commit();


yazınca sorun kalmıyo. 

Benim gibi acemi olup bu problemi yaşayan olursa bunu bi denesin boşuna üstadları yormamış oluruz :))

Seda Durmuş
27.10.2019 - 02:34
Çok teşekkürler bilgi için, işime yaradı :)